---
keywords:
- Smart Contracts
- deposit
- transfer
- chain
- Rust
- Solo
description: The common account is controlled by the chain owner, and is used to store funds collected by fees, invalid contracts or sent to the L1 chain address.
image: /img/logo/WASP_logo_dark.png
---

import Tabs from "@theme/Tabs"
import TabItem from "@theme/TabItem"

# The Common Account

The common account is controlled by the chain owner (defined in the chain root contract).

This account is used to store funds collected by fees, or sent to the chain L1 address, or to invalid contracts. (this way the funds are not permanently lost)

## Parameters

- `ParamWithdrawAmount` - the amount to harvest (defaults to 0, which means all available funds)
- `ParamWithdrawColor` - color of the tokens to harvest (defaults to normal iotas)

<Tabs
    defaultValue="solo"
    values={[
        {label: 'Solo', value: 'solo'},
        {label: 'Solo (Schema)', value: 'soloctx'},
        {label: 'Rust (Schema)', value: 'rust'},
        {label: 'Go (Schema)', value: 'go'},
    ]}>
<TabItem value="solo">

```go
req := solo.NewCallParams(accounts.Contract.Name, accounts.FuncHarvest.Name)
_, err := chain.PostRequestSync(req.WithIotas(1), wallet)
require.NoError(t, err)
```

</TabItem>
<TabItem value="soloctx">

```go
w := coreaccounts.ScFuncs.Harvest(ctx.Sign(wallet))
w.Func.TransferIotas(1).PostToChain(chainID)
require.NoError(t, ctx.Err)
```

</TabItem>
<TabItem value="rust">

```rust
let h = coreaccounts::ScFuncs::harvest(ctx);
h.func.transfer_iotas(1).post_to_chain(chainID);
```

</TabItem>
<TabItem value="go">

```go
w := coreaccounts.ScFuncs.Harvest(ctx)
w.Func.TransferIotas(1).PostToChain(chainID)
```

</TabItem>
</Tabs>
